home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / mtstacks.d < prev    next >
Text File  |  1997-10-26  |  3KB  |  68 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *  MAGICTOOLS   Modula's  All purpose  GEM  Interface  Cadre  Toolbox  *
  4.  *               ÿ         ÿ            ÿ    ÿ          ÿ               *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus, sowie die   *
  11.  * Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
  12.  * oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail-    *
  13.  * boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen    *
  14.  * Einverst„ndnisserkl„rung des Autors.                                 *
  15.  *                                                                      *
  16.  * Die Verbreitung des Moduls als Teil eines gelinkten Programms ist    *
  17.  * fr Lizenznehmer ausdrcklich erlaubt!  Der Autor beh„lt sich das    *
  18.  * Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
  19.  * widerrufen.                                                          *
  20.  *----------------------------------------------------------------------*)
  21.  
  22. (*----------------------------------------------------------------------*
  23.  * mtStack      Implementiert eine Struktur nach dem LIFO-Prinzip (Last *
  24.  * In, First Out), auch als Keller oder Stack bekannt. Durch die typ-   *
  25.  * lose Datenform der zu speichernden Information kann das Modul sehr   *
  26.  * flexibel eingesetzt werden.  Maximale Speichergr”že der Information  *
  27.  * ist 32kb.                                                            *
  28.  *----------------------------------------------------------------------*)
  29.  
  30. DEFINITION MODULE mtStacks;
  31.  
  32. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  33.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  34.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  35.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  36.  
  37.  
  38.  
  39.  
  40.  
  41. TYPE    STACK;
  42.  
  43. PROCEDURE NewStack (VAR stack: STACK): BOOLEAN;
  44. (* Generiert einen neuen Stack *)
  45.  
  46. PROCEDURE DisposeStack (VAR stack: STACK);
  47. (* L”scht einen Stack, wenn der Stack nicht leer ist, wird er vorher
  48.  * gel”scht
  49.  *)
  50.  
  51. PROCEDURE StackEmpty (stack: STACK): BOOLEAN;
  52. (* TRUE, wenn der Stack leer ist *)
  53.  
  54. PROCEDURE StackEntries (stack: STACK): lCARDINAL;
  55. (* Anzahl der Eintr„ge im Stack *)
  56.  
  57. PROCEDURE Push (stack: STACK; info: ARRAY OF LOC): BOOLEAN;
  58. (* Legt ein Element auf dem Stack ab, FALSE wenn dabei ein Fehler auftritt *)
  59.  
  60. PROCEDURE Pop (stack: STACK; VAR info: ARRAY OF LOC): BOOLEAN;
  61. (* Holt ein Element vom Stack. Es wird nur kopiert, wenn die
  62.  * Datenstruktur gleich oder gr”žer als die gespeicherte Struktur ist.
  63.  * FALSE wenn dabei ein Fehler auftritt (info zu klein, Stack leer).
  64.  *)
  65.  
  66. END mtStacks.
  67.  
  68.